//
// Created by Administrator on 2020/7/2.
//构造函数
//定义:类中的特殊函数,用于描述初始化算法
//作用:在对象被创建时使用特定的值构造对象,将对象初始化为一个特定的初始化状态。
//注意:构造函数的调用时机(在对象创建时被自动调用,例如Clock myClock(0,0,0))
//下面两个都是默认构造函数,如在类中同时出现,则编译器错误
/*
Clock();
Clock(int newH=0,int newM=0,int newS=0);
*/

//如果程序中已定义构造函数,默认情况下编译器就不在隐含生成默认构造函数,如果此时依然希望编译器含生成默认构造函数,可以使用“=default”
//例:
/*
class Clock
{
public:
    Clock()=default;//指示编译器提供默构造函数
    Clock(int newH,int newM,int newS);//构造函数
private:
    int hour,minute,second;
};
*/


//构造函数举例1:
/*
//1-类定义
class Clock
{
public:
    Clock(int newH,int newM,int newS);//构造函数
    void setTime(int newH,int newM,int newS);
    void showTime();

private:
    int hour,minute,second;
};
//2-构造函数的实现
Clock::Clock(int newH, int newM, int newS):hour(newH),minute(newM),second(newS) {}//newH去初始化hour等
//其他与T30一样
int main()
{
    Clock c(0,0,0);//自动调用构造函数
    c.showTime();
    return 0;
}
*/


//构造函数举例2:
//1-类定义
class Clock
{
public:
    Clock(int newH,int newM,int newS);//构造函数
    Clock();//默认构造函数2
    void setTime(int newH,int newM,int newS);
    void showTime();

private:
    int hour,minute,second;
};
//2-构造函数的实现
Clock::Clock():hour(0),minute(0),second(0) {}//默认构造函数1
//其他同上一致
int main()
{
    Clock c1(8,10,0);//调用有参数的构造函数1
    Clock c2;//调用无参数的构造函数2


    return 0;
}